#ifndef _GUARD_DECK_
#define _GUARD_DECK_
#include "Card.h"
#include <assert.h>
#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
class Deck {
  public:
    Deck();
    void add(Card* extraCard);
    void add(Deck* extraDeck);
    Card* at(int position);
    void debugPrint();
    Card* draw();
    Deck draw(int deckSize);
    void remove(Card* _target);
    void replace(int index, Card*);
    int size();
    void shuffle();
    void sort();
    void transfer(int numberOfCards, Deck* recipient);
  private:
    vector<Card*> contents;
};

#endif
